Eine Datenbanktransaktion entspricht einer Arbeitseinheit, die entweder vollständig gelingen oder vollständig scheitern muss. Bei Oracle beginnt eine Transaktion mit der ersten ausgeführten DML-Anweisung (Data Management Language) und endet, wenn eine COMMIT-Anweisung (Übergabe) ausgegeben wird, um die Transaktion abzuspeichern, beziehungsweise eine ROLLBACK-Anweisung (Wiederholung), um diese zu löschen.
Aufgrund der Tatsache, dass die Transaktionen in Form von „all or nothing“ (alles oder nichts) ausgelegt sind, kann es unter Umständen schwierig sein, Fehlermeldungen in einer Datenbanktabelle zu protokollieren, weil die Anweisung INSERT (Einfügen) zum Schreiben des Protokolleintrags beim Wiederholen der Transaktion rückgängig gemacht wird.
Oracle bietet eine praktische Lösung für dieses Problem: die autonome Transaktion. Autonome Transaktionen werden innerhalb ihres eigenen Kontextes, ausgehend von der aktuellen Transaktion, verarbeitet. Diese können festgeschrieben oder separat wiederholt werden, ohne die laufende Transaktion zu beeinflussen. Dadurch eignen sie sich ideal zum Schreiben in eine Fehlerprotokolltabelle. Wenn ein Fehler in der Transaktion festgestellt wird, kann eine Zeile in die Fehlerprotokolltabelle eingefügt, festgeschrieben und anschließend die Haupttransaktion wiederholt werden, ohne dass die eingefügte Zeile verloren geht.
Weil autonome Transaktionen separat von der Haupttransaktion ablaufen, können sie den aktuellen Status der geänderten Zeilen nicht sehen. Es scheint so, als befänden sie sich in einer separaten Sitzung – erst wenn die Haupttransaktion festgeschrieben wird, sind sie für die autonome Transaktion verfügbar. Der umgekehrte Fall trifft jedoch nicht zu: Die Haupttransaktion kann die Ergebnisse einer bereits festgeschriebenen autonomen Transaktion sehen.
Neueste Kommentare
Noch keine Kommentare zu Autonome Transaktionen in Oracle: Protokoll-Einträge erhalten
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.